/*
 * Action.h
 *
 *  Created on: 27/05/2011
 *      Author: DessaVida
 */

#ifndef ACTION_H_
#define ACTION_H_

#include "Component.h"
#include "math/Rectangle.h"
#include "core/Dialog.h"

class Model;

class Action : public Component
{
    int interactor;
    bool active;
public:
    Action(int id);
    virtual ~Action();

    virtual void initAction(Model *model, Dialog* dialog) = 0;
    virtual void executeAction(Model *model, Dialog* dialog) = 0;
    virtual void quitAction(Model *model) = 0;

    virtual void View() = 0;

    bool getActive() const
    {
        return active;
    }

    int getInteractor() const
    {
        return interactor;
    }

    void setActive(bool active)
    {
        this->active = active;
    }

    void setInteractor(int interactor)
    {
        this->interactor = interactor;
    }

};

#endif /* ACTION_H_ */
